/*
 * ================================================================================变量定义区
 */
var showCount = 10; // 定义每页显示条数
var currentPage = 1;// 全局变量，当前页

/*
 * ================================================================================页面初始化函数
 */
$(function()
{		
	var pageType = $("#pageType").val();
	//获取上次列表
	if(pageType  === 'lastest')
	{
		getLastestListAndForm();
	}
	else
	{
		getCurrentList(currentPage);
	}
	
	//绑定回车事件
	document.onkeydown = function(event)
	{ 
		var e = event || window.event || arguments.callee.caller.arguments[0];
	    if(e && e.keyCode==13) // enter键
	    {	  
	    	event.preventDefault?event.preventDefault():event.retumValue=false;
	    	//从第一页开始，查询数据
	    	queryData();
	    }
	};
});

/*
 * ================================================================================函数定义区
 * 
 */

/**
 * 获取列表数据
 * 
 * @param currentPage 请求的页码
 */
function getDataList(param) 
{
	$.ajax(
	{
		type : 'POST',
		url : BASE_PATH + '/systemParamManagement/listPageData.do',
		dataType : "json",
		data : param,
		cache : false,
		success : function(data, textStatus) 
		{
			var html        = "";
			var pageData    = data;
			var totalResult = pageData.queryParam.totalResult;
			if (pageData.queryResult != null) 
			{
				// 解析data, 组装成html
				$.each(pageData.queryResult,function(i, n) 
				{
					 html += '<tr onclick="chooseRow(this,false);"  id="tr_index_'+i+'">'
						  +  '<td title="'+switcHtml(n.paramKey)+'">'+switcHtml(n.paramKey)+'</td>'
					      +  '<td title="'+switcHtml(n.paramVal)+'">'+switcHtml(n.paramVal)+'</td>'
					      +  '<td style="text-align:center;" title='+getRealCn(n.paramLevel)+'>'+getRealCn(n.paramLevel)+'<input type="hidden" name="paramLevel" value='+n.paramLevel+' /></td>'
				          +  '<td title="'+switcHtml(n.createUser)+'">'+switcHtml(n.createUser)+'</td>'
						  +  '<td style="text-align:center;" title='+n.createTime+'>'+n.createTime+'</td>'
						  +  '<td title="'+switcHtml(n.lastModifyUser)+'">'+switcHtml(n.lastModifyUser)+'</td>'
						  +  '<td style="text-align:center;" title='+n.lastModifyTime+'>'+n.lastModifyTime+'</td>'
					      +  '<td style="width: 1px;"></td></tr>';
				});

			} 
			else 
			{
				html = '<tr><td colspan="2">No items.</td></tr>';
			}
			
			$('#tBodyList').html(html);
			currentPage = param.currentPage;
			
			if (totalResult == 0) 
			{
				$('#tBodyList').html('<tr><td style="text-align:center;">No items.</td></tr>');
				$("#pagination").hide();
			} 
			else 
			{
				$("#pagination").show();
				
				// 创建分页
				$("#pagination").pagination(totalResult, 
				{
					num_edge_entries    : 1, //边缘页数
					num_display_entries : 3, //主体页数
					current_page        : currentPage,
					callback            : pageListCallback,
					items_per_page      : showCount //每页显示1项
				});
			};
			
			//清除之前所有的选中记录
        	chooseId = null;
		},
		error : function(e) 
		{
			openAlert("加载数据错误！");
			return;
		}
	});
}

/**
 * 将英文转换成中文
 * @param param
 * @returns
 */
function getRealCn(param) 
{
	if (param === "s") 
	{
		return "系统级";
	}
	else
	{
		return "用户级";
	}
}

/**
 * 查询按钮事件 
 */
function queryData()
{	
	getCurrentList(1);
}

/**
 * 新建按钮事件
 */
function createParam()
{   
	chooseId = null;
	//存储当前页数据
	$("#submitForm [name=paramKey]").val("");
	//设置SessionStorage表单当前信息
	setUnSearchFormParam();
	$("#submitForm").submit();
}

/**
 * 修改按钮事件
 */
function updateSystemParam()
{	
	//获取选中的行的id
	var id = getSelectedRows();
	if(!id || id.length<1)
	{
		openAlert('请选择一条记录');
		return false;
	}
	
	var paramKey   = $("#"+id+" td:first").text();
	var paramLevel = $("#"+id ).find("input[name='paramLevel']").val();
	
	if("s"===paramLevel)
	{
		openAlert('系统级参数不能被修改');
		chooseId = null;
		return false;
	}
	else
	{
		chooseId = null;
		$("#submitForm [name=paramKey]").val(paramKey);
		//设置SessionStorage表单当前信息
		setUnSearchFormParam();
		$("#submitForm").submit();
	}
}

/**
 * 删除按钮事件
 */
function deleteSystemParam()
{
	//获取选中的行的id
	var id = getSelectedRows();
		
	if(!id || id.length<1)
	{
		openAlert('请选择一条记录');
		return false;
	}
	
	var paramLevel = $("#"+id ).find("input[name='paramLevel']").val();
	
	if("s"===paramLevel)
	{
		openAlert('系统级参数不能被删除');
		chooseId = null;
		return false;
	}
	
	openConfirm("确定删除吗？",null,function()
	{
		var paramKey = $("#"+id+" td:first").text();
		$.ajax(
		{
			type: 'POST',
	        url: BASE_PATH +'/systemParamManagement/deleteSystemParam.do',
	        dataType:"json",
	        data:
			{
				"paramKey":paramKey 				
			},
			
			success : function(data) 
			{
				if(data=='success')
				{
					openAlert('删除成功',function()
					{			
						chooseId = null;
						getCurrentList(currentPage);
					});
					
				}
				else
				{
					chooseId = null;
					openAlert(data);
				}
				
			},
			
			error:function(e)
			{
				openAlert('操作失败！错误信息：<div>'+e.responseText+"</div>");
			}
		});
	});
}

/**
 * 获取当前请求列表
 * @param pageIndex
 */
function getCurrentList(pageIndex)
{
	//获取查询参数
	var paramVal   = $("#paramVal").val().trim().toUpperCase();
	var paramLevel = $("#paramLevel").val().trim();	
		
	var param = 
	{
	    "showCount"     			 :	showCount,
	    "currentPage"   			 :	pageIndex,
	    "paramVal"      			 :	paramVal,
	    "paramLevel"    			 :	paramLevel,
	    "query_condition_field_list" :	"paramVal,paramLevel"
    };
	getDataList(param);
	
	//向SessionStorage存储数据
	SessionStorage.setSearchParam(
	{
		formParam: 
		{
			paramVal  : paramVal,
			paramLevel: paramLevel
		},
		searchParam: param
	});
}

/**
 * 获取最近一次的列表
 * 从SessionStorage中获取参数
 */
function getLastestListAndForm()
{
	// 获取参数
	var param   = SessionStorage.getSearchParam(),
	// 表单参数
	formParam   = param.formParam,
	// 搜索参数
	searchParam = param.searchParam;
	// 选项值
	$("#paramVal").val(formParam.paramVal);
	// 参数级别
	$("#paramLevel").val(formParam.paramLevel);
	// 列表获取
	getDataList(searchParam);
	
	// 向SessionStorage存储数据
	SessionStorage.setSearchParam(
	{
		formParam   : formParam,
		searchParam : searchParam
	});
}

/**
 * 分页数据回调函数
 * @param pageIndex 请求页
 */
function pageListCallback(pageIndex)
{
	getCurrentList(pageIndex);
}

/**
 * 设置未进行搜索的表单信息
 */
function setUnSearchFormParam()
{
	// 获取参数
	var param = SessionStorage.getSearchParam();
	// 设置表单参数
	param.formParam = 
	{
		// 选项值
		paramVal   : $("#paramVal").val(),
		// 参数级别
		paramLevel : $("#paramLevel").val(),
	};
	// 重置SessionStrage数据
	SessionStorage.setSearchParam(param);
}